@import "gnome-shell-sass/_common";
@import "gnome-shell-sass/_widgets";
-.toggle-switch { width: 48px; }
.toggle-switch {
background-image: url("resource:///org/gnome/shell/theme/toggle-off-hc.svg");
&:checked { background-image: url("resource:///org/gnome/shell/theme/toggle-on-hc.svg"); }
$osd_borders_color: transparentize($osd_fg_color, 0.9);
$osd_outer_borders_color: transparentize($osd_fg_color, 0.98);
+// shadows
$shadow_color: if($variant == 'light', rgba(0,0,0,.05), rgba(0,0,0,0.2));
+$text_shadow_color: if($variant == 'light', rgba(255,255,255,0.3), rgba(0,0,0,0.2));
// buttons
$button_mix_factor: if($variant == 'light', 12%, 9%);
/* Global Values */
-// padding, margin and spacing
-$base_padding: 6px;
-$base_margin: 4px;
+// Base values of elemetns of the shell in their smallest "unit".
+// These are used in calculations elsewhere to have elements in proportion
+$base_font_size: 11pt; // font size
+$base_padding: 6px; // internal padding of elements
+$base_margin: 4px; // margin between elements
+$base_border_radius: 8px; // radii on all elements
-// border radii
-$base_border_radius: 8px;
+// Radius used to make sure elements that have rounded corners stay as such.
+// This is a workaround for 50% not working.
+$forced_circular_radius: 999px;
// radii of things that display over other things, e.g. popovers
-$modal_radius: $base_border_radius*2; // 24px
+$modal_radius: $base_border_radius * 2;
// Chroma key to flag when a background-color is always occluded, not visible.
// This allows any box-shadow behind it to be rendered more efficiently by
// omitting the middle rectangle.
$invisible_occluded_bg_color: rgba(3,2,1,0);
-// fonts
-$base_font_size: 11;
-$text_shadow_color: if($variant == 'light', rgba(255,255,255,0.3), rgba(0,0,0,0.2));
+// Fixed icon sizes
+$base_icon_size: 16px;
+$medium_icon_size: $base_icon_size * 1.5; // 24px
+$large_icon_size: $base_icon_size * 2; // 32px
+
+// Scaled values
+// Used in elements that follow text scaling factors
+$scaled_padding: to_em(6px); // same as $base_padding
+
+// Used for symbolic icons that scale
+$scalable_icon_size: to_em(16px);
+$medium_scalable_icon_size: $scalable_icon_size * 1.5;
+$large_scalable_icon_size: $scalable_icon_size * 2;
-// icons
-$base_icon_size: 1.09em;
-$large_icon_size: $base_icon_size*2; // 32px
-// $base_icon_size: 16px;
// Stage
stage {
// icon tiles
%tile {
- border-radius: $base_border_radius * 2; // 16px
+ border-radius: $base_border_radius * 2;
padding: $base_padding;
spacing: $base_padding;
border: 2px solid transparent;
border-style: solid;
border-width: 1px;
font-weight: bold;
- padding: $base_padding*.5 $base_padding*4;
+ padding: $base_padding * .5 $base_padding * 4;
}
%button {
// normal entry style
%entry_common {
border-radius: $base_border_radius;
- padding: $base_padding*1.5 $base_padding*1.5;
+ padding: $base_padding * 1.5 $base_padding * 1.5;
selection-background-color: $selected_bg_color;
selected-color: $selected_fg_color;
}
border: 1px solid transparentize($light_1, 0.9);
color: $light_1;
- border-radius: 99px;
+ border-radius: $forced_circular_radius;
padding: $base_padding $base_padding * 2;
text-align: center;
/* General Typography */
%large_title {
font-weight: 300;
- @include fontsize(24);
+ @include fontsize(24pt);
}
%title_1 {
font-weight: 800;
- @include fontsize(20);
+ @include fontsize(20pt);
}
%title_2 {
font-weight: 800;
- @include fontsize(15);
+ @include fontsize(15pt);
}
%title_3 {
font-weight: 700;
- @include fontsize(15);
+ @include fontsize(15pt);
}
%title_4 {
font-weight: 700;
- @include fontsize(13);
+ @include fontsize(13pt);
}
%heading {
font-weight: 700;
- @include fontsize(11);
+ @include fontsize(11pt);
}
%caption_heading {
font-weight: 700;
- @include fontsize(9);
+ @include fontsize(9pt);
}
%caption {
font-weight: 400;
- @include fontsize(9);
+ @include fontsize(9pt);
}
%smaller {
font-weight: 400;
- @include fontsize(8);
+ @include fontsize(8pt);
}
%monospace {font-family: monospace;}
color: $osd_fg_color;
background-color: $osd_bg_color;
border: 1px solid $osd_outer_borders_color;
- border-radius: 999px;
- padding: $base_padding*2;
+ border-radius: $forced_circular_radius;
+ padding: $base_padding * 2;
@if $is_highcontrast {
border: 2px solid $hc_inset_color;
@return 0 1px $c;
}
-// provide font size in rem, with px fallback
-@mixin fontsize($size: 24, $base: 16) {
- font-size: round($size) + pt;
- //font-size: ($size / $base) * 1rem;
+// Function to convert px values to em
+@function to_em($input, $base: 16px) {
+ // multiplied and divided by 1000 to make up for round() shortcoming
+ $em_value: ($input / $base) * 1.091 * 1000;
+ @return round($em_value) / 1000 * 1em;
+}
+
+// Mixin to convert provided font size in pt to em units
+@mixin fontsize($size, $base: 16px, $unit: pt) {
+ // if pt, convert into unitless value with the assumption: 1pt = 1.091px
+ $adjusted_size: if($unit == pt, $size * 1.091, $size) * 1000;
+ $rounded_size: round($adjusted_size / $base) / 1000;
+ font-size: $rounded_size * 1em;
+ // font-size: round($size) + pt;
}
@mixin draw_shadows($shadow1, $shadow2:none, $shadow3:none, $shadow4:none) {
// styling for elements within popovers that look like notifications
@mixin card($flat: false) {
- border-radius: $base_border_radius*1.5;
+ border-radius: $base_border_radius * 1.5;
+ padding: $scaled_padding * 2;
margin: $base_margin;
@if $flat {
font-weight: normal;
spacing: $base_padding;
transition-duration: 100ms;
- padding: $base_padding*1.5 $base_padding*2;
+ padding: $base_padding * 1.5 $base_padding * 2;
@if $flat {
@include button(undecorated);
transition-duration: 150ms;
border: 3px solid transparent;
- border-radius: 99px;
+ border-radius: $forced_circular_radius;
font-weight: bold;
background-color: transparent;
#{$child_class} {
transition-duration: 150ms;
border: 3px solid transparent;
- border-radius: 99px;
+ border-radius: $forced_circular_radius;
}
&:active, &:focus, &:checked {
@include overview_icon($system_fg_color);
.overview-icon {
- padding: $base_padding*2;
- border-radius: $base_border_radius*3;
+ padding: $base_padding * 2;
+ border-radius: $base_border_radius * 3;
color: $system_fg_color;
}
.overview-icon.overview-icon-with-label {
// expanded folder
.app-folder-dialog {
- border-radius: $modal_radius*4;
+ border-radius: $modal_radius * 4;
background-color: $system_overlay_bg_color;
@if $is_highcontrast {
}
& .folder-name-container {
- padding: 24px 36px 0;
- spacing: 12px;
+ padding: $base_padding * 4 $base_padding * 6 0;
+ spacing: $base_padding * 2;
& .folder-name-label,
& .folder-name-entry {
/* FIXME: this is to keep the label in sync with the entry */
& .folder-name-label { padding: 5px 7px; color: $system_fg_color; }
-
- & .edit-folder-button {
- @extend %button;
- padding: 0;
- width: 36px;
- height: 36px;
- border-radius: 99px;
- & > StIcon { icon-size: $base_icon_size }
- }
}
& .icon-grid {
}
.app-folder-dialog-container {
- padding: $base_padding*2;
+ padding: $base_padding * 2;
width: 720px;
height: 720px;
}
}
// App Grid pagination indicators
+$page_indicator_size: 10px;
.page-indicator {
padding: $base_padding $base_padding * 2 0;
transition-duration:400ms;
.page-indicator-icon {
- width: 10px;
- height: 10px;
- border-radius: 10px; // the same as height&width
+ width: $page_indicator_size;
+ height: $page_indicator_size;
+ border-radius: $forced_circular_radius;
background-color: white;
transition-duration: 400ms;
}
.system-action-icon {
background-color: transparentize($system_fg_color,.9);
color: $system_fg_color;
- border-radius: 99px;
+ border-radius: $forced_circular_radius;
icon-size: $app_icon_size * 0.5;
@if $is_highcontrast {
box-shadow: inset 0 0 0 2px $hc_inset_color;
background-gradient-start: rgba(255, 255, 255, 0.05);
background-gradient-end: transparent;
background-gradient-direction: horizontal;
- border-radius: $modal_radius*1.5 0px 0px $modal_radius*1.5;
+ border-radius: $modal_radius * 1.5 0px 0px $modal_radius * 1.5;
}
&.previous:ltr,
background-gradient-start: transparent;
background-gradient-end: rgba(255, 255, 255, 0.05);
background-gradient-direction: horizontal;
- border-radius: 0px $modal_radius*1.5 $modal_radius*1.5 0px;
+ border-radius: 0px $modal_radius * 1.5 $modal_radius * 1.5 0px;
}
}
.page-navigation-arrow {
- margin: 6px;
- padding: 18px;
- width: 24px;
- height: 24px;
- border-radius: 99px;
+ margin: $base_padding;
+ padding: $base_padding * 3;
+ width: $medium_icon_size;
+ height: $medium_icon_size;
+ border-radius: $forced_circular_radius;
transition-duration: 100ms;
> StIcon { color: $system_fg_color;}
/* Buttons */
.button {
- @extend %button; // that's it
- min-height: 22px;
+ @extend %button;
+ // uses scalable value since it's a text element
+ min-height: to_em(22px);
}
.icon-button {
- @extend .button; // same style as buttons
+ @extend %button;
- border-radius: 99px;
- padding: $base_padding*2;
- min-height: 16px;
+ border-radius: $forced_circular_radius; // is circular
+ padding: $scaled_padding * 2;
+ min-height: $scalable_icon_size;
StIcon {
- icon-size: $base_icon_size;
+ icon-size: $scalable_icon_size;
-st-icon-style: symbolic;
}
}
// overall menu
#calendarArea {
- padding: $base_padding - 2px;
+ padding: $base_margin;
}
// Calendar menu side column
// prev/next month icons
.calendar-change-month-back StIcon,
.calendar-change-month-forward StIcon {
- icon-size: $base_icon_size;
+ icon-size: $scalable_icon_size;
}
// month label
}
.pager-button {
- @extend .button, .flat;
- padding: 0 !important;
- height: 32px;
- width: 32px;
- margin: 2px;
- border-radius: $base_border_radius;
+ @extend .icon-button, .flat;
+ margin: $base_margin * 0.5;
+ padding: $base_padding !important;
+ border-radius: $base_border_radius !important;
transition-duration: 100ms;
}
}
@extend %smaller;
@extend .button, .flat;
- border-radius: 99px;
+ border-radius: $forced_circular_radius;
height: 3em !important;
width: 3em !important;
margin: 2px;
height: 0.93em !important; // force heading to be smaller height
padding-top: $base_padding !important;
margin-bottom: 0;
- border-radius: 9px;
+ border-radius: $base_border_radius * 1.5;
}
&.calendar-weekday {}
// week number style
.calendar-week-number {
- @include fontsize($base_font_size - 4);
+ @extend %smaller;
font-weight: bold;
font-feature-settings: "tnum";
text-align: center;
- margin: 6px;
+ margin: $base_padding;
padding: 0 $base_padding;
- border-radius: 3px;
+ border-radius: $base_border_radius * 0.5;
background-color: transparentize($fg_color, 0.9);
color: $insensitive_fg_color;
/* Events */
.events-button {
@include card;
- padding: $base_padding * 2;
.events-box {
spacing: $base_padding;
/* World clocks */
.world-clocks-button {
@include card;
- padding: $base_padding * 2;
.world-clocks-grid {
spacing-rows: $base_padding;
/* Weather */
.weather-button {
@include card;
- padding: $base_padding * 2;
.weather-box {
spacing: $base_padding + $base_margin;
}
.weather-forecast-icon {
- icon-size: $large_icon_size;
+ icon-size: $large_scalable_icon_size;
}
.weather-forecast-temp {
$dash_background_color: $system_overlay_bg_color;
$dash_placeholder_size: 32px;
-$dash_padding: $base_padding*2; // 12px
+$dash_padding: $base_padding * 2; // 12px
$dash_border_radius: $modal_radius + $dash_padding;
// container for the dash
// each app item on the dash
.app-well-app .overview-icon {
padding: $base_padding;
- border-radius: $base_border_radius*2;
+ border-radius: $base_border_radius * 2;
}
// show apps button
box-shadow: inset 0 0 0 1px $outer_borders_color;
.modal-dialog-content-box {
- margin: 32px 40px;
- spacing: 32px;
+ margin: $base_margin * 8 $base_margin * 10;
+ spacing: $base_margin * 8;
max-width: 28em;
}
/* Message Dialog */
.message-dialog-content {
- spacing: 18px;
+ spacing: $base_padding * 3;
.message-dialog-title {
text-align: center;
/* Dialog List */
.dialog-list {
- spacing: 18px;
+ spacing: $base_padding * 3;
.dialog-list-title {
text-align: center;
/* Run Dialog */
.run-dialog {
.modal-dialog-content-box {
- margin-top: 24px;
- margin-bottom: 14px;
+ margin-top: $base_padding * 4;
+ margin-bottom: $base_padding * 2;
}
.run-dialog-entry { width: 20em; }
.run-dialog-description {
width: 28em;
.modal-dialog-content-box {
- margin-bottom: 24px;
+ margin-bottom: $base_margin * 6;
}
}
.prompt-dialog-password-grid {
- spacing-rows: 8px;
- spacing-columns: 4px;
+ spacing-rows: $base_margin * 2;
+ spacing-columns: $base_margin;
.prompt-dialog-password-entry {
width: auto;
// 4px (spacing) + 16px (spinner-width)
- &:ltr { margin-left: 20px; }
- &:rtl { margin-right: 20px; }
+ &:ltr { margin-left: $base_margin+$base_icon_size; }
+ &:rtl { margin-right: $base_margin+$base_icon_size; }
}
}
.prompt-dialog-password-layout {
- spacing: 8px;
+ spacing: $base_margin * 2;
}
.prompt-dialog-password-entry {
.polkit-dialog-user-layout {
text-align: center;
- spacing: 8px;
- margin-bottom: 6px;
+ spacing: $base_margin * 2;
+ margin-bottom: $base_padding;
.polkit-dialog-user-root-label { color: $warning_color; }
}
/* Audio selection dialog */
.audio-device-selection-dialog {
- .modal-dialog-content-box { margin-bottom: 28px; }
- .audio-selection-box { spacing: 20px; }
+ .modal-dialog-content-box { margin-bottom: $base_margin * 7; }
+ .audio-selection-box { spacing: $base_margin * 5; }
}
.audio-selection-device {
- border-radius: $base_border_radius*2;
+ border-radius: $base_border_radius * 2;
&:hover,&:focus { background-color: $hover_bg_color; }
- &:active {
+ &:active {
background-color: $selected_bg_color;
color: $selected_fg_color;
}
}
.audio-selection-device-box {
- padding: 20px;
- spacing: 20px;
+ padding: $base_margin * 5;
+ spacing: $base_margin * 5;
}
.audio-selection-device-icon {
@extend %entry;
StIcon.capslock-warning {
- icon-size: $base_icon_size;
+ icon-size: $scalable_icon_size;
warning-color: $warning_color;
- padding: 0 4px;
+ padding: 0 $base_margin;
}
StIcon.peek-password {
- icon-size: $base_icon_size;
- padding: 0 4px;
+ icon-size: $scalable_icon_size;
+ padding: 0 $base_margin;
}
StLabel.hint-text {
- margin-left: 2px;
+ margin-left: $base_margin * 0.5;
}
}
}
.hotplug-notification-item-icon {
- icon-size: 24px;
- padding: 0 4px;
+ icon-size: $medium_icon_size;
+ padding: 0 $base_margin;
}
}
.candidate-box {
- padding: $base_padding $base_padding*2 $base_padding $base_padding*2;
+ padding: $base_padding $base_padding * 2 $base_padding $base_padding * 2;
border-radius: $base_border_radius;
&:selected { background-color: $selected_bg_color; color: $selected_fg_color; }
&:hover { background-color: $hover_bg_color; color: $hover_fg_color; }
.candidate-page-button-box {
height: 2em;
- .vertical & { padding-top: $base_padding*2; }
- .horizontal & { padding-left: $base_padding*2; }
+ .vertical & { padding-top: $base_padding * 2; }
+ .horizontal & { padding-left: $base_padding * 2; }
}
.candidate-page-button {
/* On-screen Keyboard */
$key_size: 1.2em;
-$key_border_radius: $base_border_radius + 4px; // 12px
+$key_border_radius: $base_border_radius * 1.25;
$key_bg_color: darken($osd_fg_color, 70%);
// $default_key_bg_color: darken($key_bg_color, 4%);
$default_key_bg_color: if($variant=='light', darken($key_bg_color, 11%), darken($key_bg_color, 10%));
// the keys
.keyboard-key {
-
- @include fontsize($base_font_size + 5);
+ @include fontsize($base_font_size + 5pt);
font-weight: bold;
min-height: $key_size;
min-width: $key_size;
}
&.shift-key-lowercase {}
-
+
// pressed shift has different style
- &.shift-key-uppercase {
+ &.shift-key-uppercase {
background-color: lighten($key_bg_color, 20%);
color: $osd_bg_color;
&:hover {
}
// size of icons on keys
- StIcon { icon-size: 24px; }
+ StIcon { icon-size: $medium_icon_size; }
}
// long press on a key popup
.keyboard-subkeys {
- -arrow-border-radius: $base_border_radius*2;
+ -arrow-border-radius: $base_border_radius * 2;
-arrow-background-color: $osd_bg_color;
-arrow-border-width: 1px;
-arrow-border-color: lighten($osd_bg_color, 9%);
// suggestions
.word-suggestions {
- @include fontsize($base_font_size + 1);
+ @extend %title_4;
spacing: 12px;
min-height: 17pt;
- padding: $base_padding*2;
+ padding: $base_padding * 2;
color: $osd_fg_color;
// each suggestion
StButton {
margin: 0 3px;
min-width: 32px;
- border-radius: $base_border_radius - 2px;
- padding: 0px $base_padding*3;
+ border-radius: 4px;
+ padding: 0px $base_padding * 3;
@include keyboard_key(undecorated, $key_bg_color, $osd_fg_color);
}
&.cancel-button {
- padding: $base_padding*1.5;
+ padding: $base_padding * 1.5;
}
}
.login-dialog-button-box {
width: $_gdm_dialog_width;
- spacing: $base_padding*2;
+ spacing: $base_padding * 2;
}
.login-dialog-logo-bin {
.login-dialog-user-selection-box { padding: 100px 0px; }
.login-dialog-not-listed-label {
- @include fontsize($base_font_size);
+ @extend %heading;
font-weight: bold;
color: darken($_gdm_fg,30%);
- padding: $base_padding*2;
+ padding: $base_padding * 2;
.login-dialog-not-listed-button:focus &,
.login-dialog-not-listed-button:hover & {
.login-dialog-auth-list-view { -st-vfade-offset: 1em; }
.login-dialog-auth-list {
- spacing: 6px;
+ spacing: $base_padding;
margin-left: 2em;
}
.login-dialog-auth-list-title {
}
.login-dialog-auth-list-item {
- border-radius: $base_border_radius*2;
- padding: 4px;
+ border-radius: $base_border_radius * 2;
+ padding: $base_margin;
color: darken($_gdm_fg,30%);
&:focus, &:selected {
}
.login-dialog-auth-list-label {
- @include fontsize($base_font_size + 2);
+ @extend %title_4;
font-weight: bold;
- padding-left: 15px;
-
- &:ltr { padding-left: 14px; text-align: left; }
- &:rtl { padding-right: 14px; text-align: right; }
+ &:ltr { padding-left: $base_padding * 2.5; text-align: left; }
+ &:rtl { padding-right: $base_padding * 2.5; text-align: right; }
}
.login-dialog-user-list-view { -st-vfade-offset: 1em; }
.login-dialog-user-list {
- spacing: 12px;
+ spacing: $base_padding * 2;
width: $_gdm_dialog_width;
.login-dialog-user-list-item {
- border-radius: $base_border_radius + 4px;
+ border-radius: $base_border_radius + $base_margin;
padding: $base_padding;
background-color: transparentize($_gdm_fg, .95);
color: $_gdm_fg;
.login-dialog-timed-login-indicator {
height: 2px;
- margin-top: 6px;
+ margin-top: $base_padding;
background-color: darken($_gdm_fg, 30%);
}
}
.login-dialog-prompt-layout {
- spacing: $base_padding*2;
+ spacing: $base_padding * 2;
width: 26em;
}
.unlock-dialog-clock-time {
@extend %numeric;
- @include fontsize(72);
+ @include fontsize(72pt);
font-weight: 200;
}
.unlock-dialog-clock-hint {
margin-top: 2em;
- padding: $base_padding $base_padding*3;
- border-radius: $base_border_radius*2;
+ padding: $base_padding $base_padding * 3;
+ border-radius: $base_border_radius * 2;
font-weight: bold;
}
}
}
.unlock-dialog-notifications-container {
- margin: 12px;
- spacing: 6px;
+ margin: $base_margin * 3;
+ spacing: $base_padding;
width: $_gdm_dialog_width;
background-color: transparent;
.notification,
.unlock-dialog-notification-source {
- padding: 12px 16px;
+ padding: $base_margin * 3 $base_margin * 4;
border: none;
background-color: transparentize($_gdm_fg,0.9);
color: $_gdm_fg;
}
.unlock-dialog-notification-label {
- padding-left: 12px;
+ padding-left: $base_padding * 2;
padding-right: 0;
- &:rtl { padding-right: 12px; padding-left: 0; }
+ &:rtl { padding-right: $base_padding * 2; padding-left: 0; }
}
.unlock-dialog-notification-count-text {
font-weight: bold;
- padding: 0 12px;
+ padding: 0 $base_padding * 2;
color: $_gdm_fg;
background-color: transparentize($_gdm_fg, 0.9);
- border-radius: 99px;
+ border-radius: $forced_circular_radius;
}
// layout of the user list
&.horizontal {
- spacing: $base_padding*3;
+ spacing: $base_padding * 3;
.user-widget-label {
@extend %title_3;
}
.user-icon {
+ border-radius: $forced_circular_radius;
+
& StIcon {
- padding: 12px;
- icon-size: $base_icon_size*2;
- width: $base_icon_size*3;
- height: $base_icon_size*3;
+ padding: $base_padding * 2;
+ icon-size: $base_icon_size * 2;
+ width: $base_icon_size * 3;
+ height: $base_icon_size * 3;
background-color: transparentize($_gdm_fg, 0.9);
}
}
// layout of the login prompt
&.vertical {
- spacing: $base_padding*4;
+ spacing: $base_padding * 4;
.user-widget-label {
@extend %title_1;
}
.user-icon {
- icon-size: $base_icon_size*10;
+ icon-size: $base_icon_size * 10;
& StIcon {
- padding: 32px;
- icon-size: $base_icon_size*4;
+ padding: $base_padding * 4;
+ icon-size: $base_icon_size * 4;
background-color: transparentize($_gdm_fg, 0.9);
}
}
.lg-toolbar-button {
@extend %osd_button;
- padding: $base_padding $base_padding*2;
+ padding: $base_padding $base_padding * 2;
& > StIcon { icon-size: $base_icon_size; }
}
.notebook-tab {
@extend %osd_button;
- -natural-hpadding: $base_padding*2;
- -minimum-hpadding: $base_padding*2;
- padding: $base_padding $base_padding*2;
+ -natural-hpadding: $base_padding * 2;
+ -minimum-hpadding: $base_padding * 2;
+ padding: $base_padding $base_padding * 2;
}
StBoxLayout#EvalBox { padding: 4px; spacing: $base_padding; padding: $base_padding; }
StEntry {
@extend %osd_entry;
- min-height: 22px;
+ min-height: to_em(22px);
}
.shell-link {
}
.lg-extension {
- padding: $base_padding*2;
@include card;
}
// icon size and color
> StIcon {
- icon-size: $base_icon_size*3; // 48px
- margin-bottom: $base_margin*3;
+ icon-size: $scalable_icon_size * 3; // 48px
+ margin-bottom: $base_margin * 3;
-st-icon-style: symbolic;
}
}
// message bubbles
.message {
@include card;
+ padding: 0 !important;
// icon container
.message-icon-bin {
// icon size and color
> StIcon {
- icon-size: $large_icon_size; // 32px
+ icon-size: $large_icon_size;
-st-icon-style: symbolic;
}
// content
.message-content {
spacing: 4px;
- padding: ($base_padding*1.5);
- margin-bottom: $base_margin*2;
+ padding: ($base_padding * 1.5);
+ margin-bottom: $base_margin * 2;
}
- // title
- .message-title {
- font-weight: bold;
- /* HACK: the label should be baseline-aligned with a 1em label, fake this with some bottom padding */
- padding-top: 0.57em;
- }
+ .message-title-box {
+ spacing: $base_padding;
+ // title
+ .message-title {
+ font-weight: bold;
+ }
- // secondary container in title box
- .message-secondary-bin {
- padding: 0 $base_margin * 2;
+ // secondary container in title box
+ .message-secondary-bin {
- // notification time stamp
- > .event-time {
- color: transparentize($fg_color, 0.5);
- @include fontsize($base_font_size - 2);
- /* HACK: the label should be baseline-aligned with a 1em label, fake this with some bottom padding */
- padding-bottom: 0.13em;
+ // notification time stamp
+ > .event-time {
+ @extend %caption;
+ color: transparentize($fg_color, 0.5);
+ padding-bottom: to_em(1px);
- &:ltr { text-align: right };
- &:rtl { text-align: left };
+ &:ltr { text-align: right };
+ &:rtl { text-align: left };
+ }
}
}
+
// close button
.message-close-button {
+ @extend .icon-button;
color: $fg_color;
background-color: transparentize($fg_color, 0.8);
- border-radius: 99px;
- padding: $base_padding - 1px;
+ padding: 0 !important;
+ border: 5px transparent solid;
margin: 1px;
&:hover {background-color: transparentize($fg_color, 0.7);}
&:active {background-color: transparentize($fg_color, 0.8);}
-
- > StIcon { icon-size: $base_icon_size; }
}
// body
/* Media Controls */
.message-media-control {
- padding: 0 $base_padding*3;
- margin: $base_padding*2 0;
+ padding: 0 $base_padding * 3;
+ margin: $base_padding * 2 0;
border-radius: $base_border_radius;
color: $fg_color;
@if $is_highcontrast {
border: 1px solid $hc_inset_color;
- margin: $base_padding*2 2px;
+ margin: $base_padding * 2 2px;
}
// colors are lightened since the media controls are in a card
}
// fix margin for last button
- &:last-child:ltr { margin-right: $base_margin*3; }
- &:last-child:rtl { margin-left: $base_margin*3; }
+ &:last-child:ltr { margin-right: $base_margin * 3; }
+ &:last-child:rtl { margin-left: $base_margin * 3; }
& StIcon { icon-size: $base_icon_size; }
}
// album-art
.media-message-cover-icon {
- icon-size: $base_icon_size*3 !important; // 48px
+ icon-size: $base_icon_size * 3 !important; // 48px
border-radius: $base_border_radius;
// when there is no artwork
border: 1px solid transparent;
border-radius: $base_border_radius;
icon-size: $large_icon_size !important; // 32px
- padding: ($base_padding*2 + 2); // 16px
+ padding: ($base_padding * 2 + 2); // 16px
}
}
.user-icon {
background-size: contain;
color: $osd_fg_color;
- border-radius: 99px;
+ border-radius: $forced_circular_radius;
icon-size: $base_icon_size * 4; // 64px
& StIcon {
background-color: transparentize($osd_fg_color,0.95);
- border-radius: 99px;
+ border-radius: $forced_circular_radius;
padding: $base_padding * 2 ; // 12px
width: $base_icon_size * 2.5; height: $base_icon_size * 2.5; // 40px;
}
}
.chat-meta-message {
+ @extend %caption;
padding-left: 4px;
- @include fontsize($base_font_size - 2);
font-weight: bold;
color: lighten($fg_color,18%);
&:rtl { padding-left: 0; padding-right: 4px; }
@extend %heading;
text-align: center;
font-weight: bold;
- spacing: $base_padding * 2; // 12px
+ spacing: $base_padding * 2;
padding: $base_padding * 2 $base_padding * 3;
- & > * { spacing: 8px; }
+ & > * { spacing: $base_margin * 2; }
margin-bottom: 4em;
- StIcon { icon-size:$large_icon_size;}
+ StIcon { icon-size: $large_icon_size;}
StLabel {
- &:ltr { margin-right: 6px; }
- &:rtl { margin-left: 6px; }
+ &:ltr { margin-right: $base_padding; }
+ &:rtl { margin-left: $base_padding; }
}
.level {
- margin-bottom: 4px;
- &:first-child { margin-bottom: 0px; }
+ margin-bottom: $base_margin;
+ &:first-child { margin-bottom: 0; }
- min-width:$base_icon_size * 10;
+ min-width: 160px;
-barlevel-height: $osd_levelbar_height;
-barlevel-background-color: transparentize($osd_fg_color, if($variant=='light', 0.7, 0.9));
-barlevel-active-background-color: $osd_fg_color;
-barlevel-overdrive-color: $destructive_color;
- -barlevel-overdrive-separator-width: 3px;
- &:ltr { margin-right: 6px; }
- &:rtl { margin-left: 6px; }
+ -barlevel-overdrive-separator-width: $base_padding * 0.5;
+ &:ltr { margin-right: $base_padding; }
+ &:rtl { margin-left: $base_padding; }
}
}
}
.overview-controls {
- padding-bottom: 32px;
+ padding-bottom: $base_margin * 8;
}
// status area icons
.system-status-icon {
- icon-size: $base_icon_size;
- padding: $base_padding - 1px;
+ icon-size: $scalable_icon_size;
+ padding: $base_padding;
margin: 0 $base_margin;
}
- .panel-status-indicators-box .system-status-icon,
- .panel-status-menu-box .system-status-icon {
- margin: 0;
- }
-
// app menu icon
.app-menu-icon {
-st-icon-style: symbolic;
// dimensions of the icon are hardcoded
}
- &#panelActivities {
- -natural-hpadding: $base_padding * 2.5;
+ // reduce margin between icons in combined menu
+ .panel-status-menu-box,
+ .panel-status-indicators-box {
+ spacing: $base_margin;
+ > .system-status-icon {
+ padding: 0;
+ }
+ }
+
+ &#panelActivities {
& StBoxLayout {
+ padding: 0 $scaled_padding * 0.5; // use em padding to keep proportion
spacing: 5px;
}
& .workspace-dot {
- border-radius: 999px;
- min-width: 8px;
- min-height: 8px;
+ border-radius: $forced_circular_radius;
+ min-width: $scalable_icon_size * 0.5;
+ min-height: $scalable_icon_size * 0.5;
background-color: $panel_fg_color;
}
}
&.screen-recording-indicator,
&.screen-sharing-indicator {
StBoxLayout {
- spacing: $base_padding;
+ spacing: $scaled_padding;
}
StIcon {
- icon-size: $base_icon_size;
+ icon-size: $scalable_icon_size;
}
}
.clock {
// the highlighted child
}
+
+ .messages-indicator {
+ icon-size: $scalable_icon_size;
+ }
}
}
// App Menu
#appMenu {
- spacing: $base_padding;
+ spacing: $scaled_padding;
.label-shadow { color: transparent; }
}
#appMenu .panel-status-menu-box {
- padding: 0 $base_padding;
- spacing: $base_padding;
+ padding: 0 $scaled_padding;
+ spacing: $scaled_padding;
}
.clock-display-box {
spacing: 2px;
.clock {
- padding-left: $base_padding * 2;
- padding-right: $base_padding * 2;
+ padding-left: $scaled_padding * 2;
+ padding-right: $scaled_padding * 2;
}
}
$menu_bg_color: $bg_color;
$menuitem_bg_color: lighten($menu_bg_color, 4%);
-$menuitem_border_radius: $base_border_radius*1.5;
+$menuitem_border_radius: $base_border_radius * 1.5;
$submenu_bg_color: lighten($menu_bg_color, 7%);
// the popover itself
.popup-menu-boxpointer {
- -arrow-rise: $base_margin+2px; // distance from the panel & screen edge
+ -arrow-rise: $base_padding; // distance from the panel & screen edge
}
// container of the popover menu
.popup-menu-content {
padding: $base_padding;
background-color: $bg_color;
- border-radius: $modal_radius*1.25;
+ border-radius: $modal_radius * 1.25;
border: 1px solid $outer_borders_color;
box-shadow: 0 2px 4px 0 $shadow_color;
}
// symbolic icons in popover
.popup-menu-arrow,
.popup-menu-icon {
- icon-size: 16px !important; // for some reason the variable doesn't work here
+ icon-size: $scalable_icon_size;
}
// popover submenus
// container for radio and check boxes
.popup-menu-ornament {
- icon-size: $base_icon_size !important;
- width: $base_icon_size;
+ icon-size: $scalable_icon_size !important;
+ width: $scalable_icon_size;
}
// separator
// "Open Windows" label
> StLabel {
@extend %caption_heading;
- &:ltr {margin-right: $base_margin*2;}
- &:rtl {margin-left: $base_margin*2;}
+ &:ltr {margin-right: $base_margin * 2;}
+ &:rtl {margin-left: $base_margin * 2;}
}
}
}
.quick-settings {
- padding: $base_padding*3;
- border-radius: $modal_radius*2.25;
+ padding: $base_padding * 3;
+ border-radius: $modal_radius * 2.25;
.icon-button, .button {
- padding: $base_padding*1.75;
+ padding: $base_padding * 1.75;
}
}
.quick-settings-grid {
- spacing-rows: $base_padding*2;
- spacing-columns: $base_padding*2;
+ spacing-rows: $base_padding * 2;
+ spacing-columns: $base_padding * 2;
}
.quick-toggle, .quick-menu-toggle {
- border-radius: 99px;
+ border-radius: $forced_circular_radius;
min-width: 12em;
max-width: 12em;
- min-height: 48px;
+ min-height: $scalable_icon_size * 3; // use icon size so the button scales
border:none;
}
.quick-toggle {
&:checked { @include button(default, $c:$selected_bg_color); }
- & > StBoxLayout { spacing: $base_padding*1.5; }
+ & > StBoxLayout { spacing: $base_padding * 1.5; }
/* Move padding into the box; this is to allow menu arrows
to extend to the border */
&.button { padding: 0; }
- & > StBoxLayout { padding: 0 $base_padding*2; }
- &:ltr > StBoxLayout { padding-left: $base_padding*2.5; }
- &:rtl > StBoxLayout { padding-right: $base_padding*2.5; }
+ & > StBoxLayout { padding: 0 $base_padding * 2; }
+ &:ltr > StBoxLayout { padding-left: $base_padding * 2.5; }
+ &:rtl > StBoxLayout { padding-right: $base_padding * 2.5; }
.quick-toggle-title { font-weight: bold; }
& StBoxLayout > .quick-toggle-subtitle {
+ @extend %caption;
font-weight: normal;
- font-size: 12px;
}
- .quick-toggle-icon { icon-size: $base_icon_size; }
+ .quick-toggle-icon { icon-size: $scalable_icon_size; }
}
.quick-menu-toggle {
min-width: auto;
max-width: auto;
- &:ltr { border-radius: 99px 0 0 99px; }
- &:ltr > StBoxLayout { padding-right: $base_padding*1.5; }
- &:rtl { border-radius: 0 99px 99px 0; }
- &:rtr > StBoxLayout { padding-left: $base_padding*1.5; }
+ &:ltr { border-radius: $forced_circular_radius 0 0 $forced_circular_radius; }
+ &:ltr > StBoxLayout { padding-right: $scaled_padding * 1.5; }
+ &:rtl { border-radius: 0 $forced_circular_radius $forced_circular_radius 0; }
+ &:rtr > StBoxLayout { padding-left: $scaled_padding * 1.5; }
- &:ltr:last-child { border-radius: 99px; }
- &:rtl:last-child { border-radius: 99px; }
+ &:ltr:last-child { border-radius: $forced_circular_radius; }
+ &:rtl:last-child { border-radius: $forced_circular_radius; }
}
& .quick-toggle-arrow {
- padding: $base_padding $base_padding*1.75;
+ padding: $scaled_padding $scaled_padding * 1.75;
border-width: 0;
border-color: transparentize($fg_color, .75);
}
&:ltr {
- border-radius: 0 99px 99px 0;
+ border-radius: 0 $forced_circular_radius $forced_circular_radius 0;
border-left-width: 1px;
}
&:rtl {
- border-radius: 99px 0 0 99px;
+ border-radius: $forced_circular_radius 0 0 $forced_circular_radius;
border-right-width: 1px;
}
}
.slider-bin {
&:focus {@include button(focus);}
padding: $base_padding;
- border-radius: 99px;
+ border-radius: $forced_circular_radius;
}
}
background-color: $bg_color !important;
color: $fg_color !important;
- border-radius: $base_border_radius*3;
- padding: $base_padding*2;
- margin: $base_padding*2 $base_padding*3 0;
+ border-radius: $base_border_radius * 3;
- .popup-menu-item > StIcon { -st-icon-style: symbolic; }
+ margin: $base_padding * 2 $base_padding * 3 0;
+
+ .popup-menu-item > StIcon {
+ -st-icon-style: symbolic;
+ icon-size: $scalable_icon_size;
+ }
& .header {
- spacing-rows: 0.5 * $base_padding;
- spacing-columns: $base_padding*2;
- padding-bottom: 2 * $base_padding;
+ spacing-rows: $base_padding * 0.5;
+ spacing-columns: $base_padding * 2;
+ padding-bottom: $base_padding * 2;
& .icon {
- icon-size: $base_icon_size*1.5; // a non-standard symbolic size but ok
- border-radius: 999px;
+ icon-size: $medium_scalable_icon_size;
+ border-radius: $forced_circular_radius;
padding: 1.5 * $base_padding;
background-color: transparentize($fg_color, 0.8);
}
.quick-settings-system-item {
- & > StBoxLayout { spacing: 2 * $base_padding; }
+ & > StBoxLayout { spacing: $base_padding * 2; }
& .power-item {
min-height: 0;
}
.nm-network-item {
- .wireless-secure-icon { icon-size: 0.5 * $base_icon_size; }
+ .wireless-secure-icon { icon-size: $scalable_icon_size * 0.5; } // half-size symbolic
}
.bt-device-item {
// background apps
.background-apps-quick-toggle {
- min-height: 40px;
+ min-height: to_em(40px);
background-color: transparent;
- & StIcon { icon-size: $base_icon_size !important; }
+ & StIcon { icon-size: $scalable_icon_size !important; }
}
.background-app-item {
// Screenshot UI
-.icon-label-button-container {
- spacing: $base_padding;
- @extend %caption;
-
- StIcon { icon-size: 32px;}
-}
-
-$screenshot_ui_panel_padding: $base_padding*3;
-$screenshot_ui_shot_cast_margin: 21px;
-$screenshot_ui_panel_border_radius: $modal_radius + $screenshot_ui_shot_cast_margin;
-$screenshot_ui_shot_cast_spacing: 3px;
+$screenshot_ui_panel_padding: $base_padding * 3;
+$screenshot_ui_panel_border_radius: $modal_radius * 2;
$screenshot_ui_button_red: $error_color;
.screenshot-ui-panel {
border-radius: $screenshot_ui_panel_border_radius;
padding: $screenshot_ui_panel_padding;
// Reduce the bottom padding a little to accommodate the large capture button.
- padding-bottom: $screenshot_ui_panel_padding - 6px;
+ padding-bottom: $screenshot_ui_panel_padding - $base_padding;
margin-bottom: 4em;
spacing: $base_padding * 2;
}
.screenshot-ui-close-button {
@extend .window-close; // copy window close button
padding: $base_padding !important; // but with more padding
- margin-top: 12px;
+ margin-top: $base_margin * 3;
box-shadow: 0 2px 4px 0 $shadow_color;
- &.left { margin-left: 12px;}
- &.right { margin-right: 12px;}
+ &.left { margin-left: $base_margin * 3;}
+ &.right { margin-right: $base_margin * 3;}
}
.screenshot-ui-type-button {
@extend %osd_button_flat;
min-width: 48px;
- padding: $base_padding * 2 $base_padding * 3 !important;
+ padding: $base_padding * 2 $base_padding * 3;
border-radius: $screenshot_ui_panel_border_radius - $screenshot_ui_panel_padding;
+
+ .icon-label-button-container {
+ @extend %caption;
+ spacing: $scaled_padding;
+
+ > StIcon { icon-size: $large_icon_size;}
+ }
}
.screenshot-ui-capture-button {
- width: 36px;
- height: 36px;
- border-radius: 99px;
+ width: $large_icon_size;
+ height: $large_icon_size;
+ border-radius: $forced_circular_radius;
border: 4px $osd_fg_color;
- padding: 4px;
+ padding: $base_margin;
.screenshot-ui-capture-button-circle {
background-color: $osd_fg_color;
transition-duration: 200ms;
&:hover, &:focus { background-color: $hover_bg_color;}
- border-radius: 99px;
+ border-radius: $forced_circular_radius;
}
&:hover, &:focus {
.screenshot-ui-shot-cast-container {
background-color: transparentize($osd_fg_color,0.9);
- border-radius: $modal_radius;
- padding: $screenshot_ui_shot_cast_spacing;
- spacing: $screenshot_ui_shot_cast_spacing;
-
+ border-radius: $forced_circular_radius;
+ padding: $base_padding * 0.5;
+ spacing: $base_padding * 0.5;
@if $is_highcontrast {
box-shadow: inset 0 0 0 1px $hc_inset_color;
}
-
- &:ltr { margin-left: $screenshot_ui_shot_cast_margin - $screenshot_ui_panel_padding;}
- &:rtl { margin-right: $screenshot_ui_shot_cast_margin - $screenshot_ui_panel_padding;}
}
+// non-standard button style
.screenshot-ui-shot-cast-button {
- padding: $base_padding $base_padding*2;
+ padding: $base_padding $base_padding * 2;
background-color: transparent;
- border-radius: $modal_radius - $screenshot_ui_shot_cast_spacing;
- StIcon { icon-size: $base_icon_size;}
+ border-radius: $forced_circular_radius;
@if $is_highcontrast {
box-shadow: inset 0 0 0 1px $hc_inset_color;
}
+ > StIcon { icon-size: $base_icon_size;}
+
&:hover, &:focus { background-color: transparentize($osd_fg_color, 0.8);}
&:active { background-color: transparentize($osd_fg_color, .5);}
&:checked { background-color: $osd_fg_color; color: $osd_bg_color;}
.screenshot-ui-show-pointer-button {
@extend %osd_button_flat;
- border-radius: 99px;
- padding: $base_padding * 2 !important;
- StIcon { icon-size: $base_icon_size;}
+ @extend .icon-button;
}
.screenshot-ui-area-indicator-shade {
}
.screenshot-ui-area-selector-handle {
- border-radius: 99px;
+ border-radius: $forced_circular_radius;
background-color: white;
box-shadow: 0 1px 3px 2px $shadow_color;
- width: 24px;
- height: 24px;
+ width: $medium_icon_size;
+ height: $medium_icon_size;
}
.screenshot-ui-window-selector {
.screenshot-ui-window-selector-check {
transition-duration: 200ms;
color: transparent;
- border-radius: 99px;
+ border-radius: $forced_circular_radius;
border-width: 12px;
- icon-size: 24px;
+ icon-size: $medium_icon_size;
}
.screenshot-ui-window-selector-window {
.screenshot-ui-tooltip {
@extend %tooltip;
text-align: center;
- -y-offset: 24px;
+ -y-offset: $base_margin * 6;
}
// Search entry
.search-entry {
- border-radius: 99px;
- margin-top: $base_padding*2;
+ border-radius: $forced_circular_radius;
+ margin-top: $base_padding * 2;
margin-bottom: $base_padding;
width: 24em;
@extend %system_entry;
.search-entry-icon {
- icon-size: $base_icon_size;
+ icon-size: $scalable_icon_size;
margin-top: 2px; // center vertically
- padding: 0 4px;
+ padding: 0 $base_margin;
}
}
// search results sections "the boxes"
.search-section {
// This should be equal to #searchResultsContent spacing
- spacing: $base_padding*3;
+ spacing: $base_padding * 3;
// separator (unstyled)
.search-section-separator {
- height: $base_margin*2; // use it as a spacer
+ height: $base_margin * 2; // use it as a spacer
background-color: transparent;
}
}
.search-section-content {
background-color: $system_overlay_bg_color;
color: $system_fg_color;
- border-radius: $modal_radius*1.5;
- padding: $base_padding*2;
- margin:0 $base_margin*3;
+ border-radius: $modal_radius * 1.5;
+ padding: $base_padding * 2;
+ margin:0 $base_margin * 3;
}
%search_section_content_item {
@include tile_button($system_fg_color);
- border-radius: $base_border_radius+3px;
+ border-radius: $base_border_radius * 1.65;
}
// "no results" text
}
.grid-search-results {
- spacing: $base_padding*5;
- margin:0 $base_margin*3;
+ spacing: $base_padding * 5;
+ margin:0 $base_margin * 3;
}
// Search results with icons
/* Slider */
-$slider_size: 16px;
+$slider_size: $scalable_icon_size;
.slider {
// slider trough
-barlevel-height: 4px;
-barlevel-background-color: transparentize($fg_color, 0.8); //background of the trough
- -barlevel-border-width: 2px;
+ -barlevel-border-width: 2px;
-barlevel-border-color: transparent; // trough border color
// fill style
-barlevel-active-background-color: $selected_bg_color;
/* App Switcher */
// same as dash
-$switcher_padding: $base_padding*2;
+$switcher_padding: $base_padding * 2;
+$switcher_radius: $modal_radius + $switcher_padding;
// the full screen container of the switcher
.switcher-list {
@extend %osd_panel;
padding: $switcher_padding;
- border-radius: $modal_radius+$switcher_padding;
+ border-radius: $switcher_radius;
box-shadow: 0 8px 8px 0 $shadow_color;
// container for items in list
width: $switch_width;
background-size: contain;
background-image: if($variant == 'light', url("resource:///org/gnome/shell/theme/toggle-off-light.svg"),url("resource:///org/gnome/shell/theme/toggle-off.svg"));
- &:checked {
+ &:checked {
background-image: if($variant == 'light', url("resource:///org/gnome/shell/theme/toggle-on-light.svg"),url("resource:///org/gnome/shell/theme/toggle-on.svg"));
}
}
/* Window Picker */
-
-$window_picker_spacing: $base_padding; // 6px
-$window_picker_padding: $base_padding * 2; // 12px
-
-$window_thumbnail_label_color: transparentize($system_bg_color, 0.4);
-
$window_close_button_color: transparentize(lighten($system_bg_color, 7%), .02);
-$window_close_button_size: 30px;
-$window_close_button_padding: 3px;
// Window picker
.window-picker {
// Space between window thumbnails
- spacing: $window_picker_spacing;
+ spacing: $base_padding;
}
// Window titles
.window-close {
background-color: $window_close_button_color;
color: $system_fg_color;
- border-radius: 99px;
+ border-radius: $forced_circular_radius;
box-shadow: 0 2px 4px 0 $shadow_color;
- padding: $window_close_button_padding;
- height: $window_close_button_size;
- width: $window_close_button_size;
+ padding: $base_padding * 0.5;
+ height: $large_icon_size;
+ width: $large_icon_size;
transition-duration: 100ms;
- & StIcon { icon-size: 24px; } // uses non standard icon size
+ & StIcon { icon-size: $medium_icon_size; }
&:hover {
background-color: lighten($window_close_button_color, 7%);
/* Workspace Switcher */
-$ws_indicator_height: $large_icon_size;
+$ws_indicator_height: 48px;
$ws_dot_active: $ws_indicator_height / 3;
$ws_dot_inactive: $ws_indicator_height / 6;
.workspace-thumbnail {
color: $system_fg_color;
background-color: lighten($system_bg_color, 10%);
- border-radius: $base_border_radius*0.5;
+ border-radius: $base_border_radius * 0.5;
border: 1px solid transparent;
@if $is_highcontrast {
// Edit button
this._editButton = new St.Button({
- style_class: 'edit-folder-button',
+ style_class: 'icon-button',
button_mask: St.ButtonMask.ONE,
toggle_mode: true,
reactive: true,
class MessagesIndicator extends St.Icon {
_init() {
super._init({
- icon_size: 16,
+ style_class: 'messages-indicator',
visible: false,
y_expand: true,
y_align: Clutter.ActorAlign.CENTER,
this._mediaControls = new St.BoxLayout();
hbox.add_child(this._mediaControls);
- let titleBox = new St.BoxLayout();
+ let titleBox = new St.BoxLayout({style_class: 'message-title-box'});
contentBox.add_child(titleBox);
- this.titleLabel = new St.Label({style_class: 'message-title'});
+ this.titleLabel = new St.Label({
+ style_class: 'message-title',
+ y_align: Clutter.ActorAlign.END,
+ });
this.setTitle(title);
titleBox.add_child(this.titleLabel);
this._secondaryBin = new St.Bin({
style_class: 'message-secondary-bin',
x_expand: true, y_expand: true,
+ y_align: Clutter.ActorAlign.END,
});
titleBox.add_child(this._secondaryBin);